home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / QuickTime / QuickTime 3 Interfaces & Libs / QTDevMac / PInterfaces / Menus.p < prev    next >
Encoding:
Text File  |  1998-08-21  |  21.5 KB  |  614 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Menus.p
  3.  
  4.      Contains:    Menu Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8.1
  7.                  Release:    QuickTime 3.0
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Menus;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __MENUS__}
  28. {$SETC __MENUS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC MenusIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __APPLEEVENTS__}
  35. {$I AppleEvents.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __CONDITIONALMACROS__}
  38. {$I ConditionalMacros.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __EVENTS__}
  41. {$I Events.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __PROCESSES__}
  44. {$I Processes.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __TEXTCOMMON__}
  47. {$I TextCommon.p}
  48. {$ENDC}
  49. {$IFC UNDEFINED __MACTYPES__}
  50. {$I MacTypes.p}
  51. {$ENDC}
  52. {$IFC UNDEFINED __QUICKDRAW__}
  53. {$I Quickdraw.p}
  54. {$ENDC}
  55.  
  56.  
  57. {$PUSH}
  58. {$ALIGN MAC68K}
  59. {$LibExport+}
  60.  
  61. {——————————————————————————————————————————————————————————————————————————————————————}
  62. {    • Menu Types (for Appearance 1.0 and later)                                            }
  63. {——————————————————————————————————————————————————————————————————————————————————————}
  64.  
  65. CONST
  66.     kMenuStdMenuProc            = 63;
  67.     kMenuStdMenuBarProc            = 63;
  68.  
  69.     kMenuNoModifiers            = 0;                            {  Mask for no modifiers }
  70.     kMenuShiftModifier            = $01;                            {  Mask for shift key modifier }
  71.     kMenuOptionModifier            = $02;                            {  Mask for option key modifier }
  72.     kMenuControlModifier        = $04;                            {  Mask for control key modifier }
  73.     kMenuNoCommandModifier        = $08;                            {  Mask for no command key modifier }
  74.  
  75.     kMenuNoIcon                    = 0;                            {  No icon }
  76.     kMenuIconType                = 1;                            {  Type for ICON }
  77.     kMenuShrinkIconType            = 2;                            {  Type for ICON plotted 16 x 16 }
  78.     kMenuSmallIconType            = 3;                            {  Type for SICN }
  79.     kMenuColorIconType            = 4;                            {  Type for cicn }
  80.     kMenuIconSuiteType            = 5;                            {  Type for Icon Suite }
  81.     kMenuIconRefType            = 6;                            {  Type for Icon Ref }
  82.  
  83. {  —— end of Appearance 1.0 types }
  84.  
  85.     noMark                        = 0;                            { mark symbol for MarkItem }
  86.  
  87.                                                                 {  menu defProc messages  }
  88.     kMenuDrawMsg                = 0;
  89.     kMenuChooseMsg                = 1;
  90.     kMenuSizeMsg                = 2;
  91.     kMenuDrawItemMsg            = 4;
  92.     kMenuCalcItemMsg            = 5;
  93.     kMenuThemeSavvyMsg            = 7;                            {  is your MDEF theme-savvy?  If so, return hex 7473 in the whichItem parameter }
  94.     mDrawMsg                    = 0;
  95.     mChooseMsg                    = 1;
  96.     mSizeMsg                    = 2;
  97.     mDrawItemMsg                = 4;
  98.     mCalcItemMsg                = 5;
  99.  
  100.     kThemeSavvyMenuResponse        = $7473;
  101.  
  102.     textMenuProc                = 0;
  103.     hMenuCmd                    = 27;                            { itemCmd == 0x001B ==> hierarchical menu }
  104.     hierMenu                    = -1;                            { a hierarchical menu - for InsertMenu call }
  105.     mPopUpMsg                    = 3;                            { menu defProc messages - place yourself }
  106.     mctAllItems                    = -98;                            { search for all Items for the given ID }
  107.     mctLastIDIndic                = -99;                            { last color table entry has this in ID field }
  108.  
  109.  
  110.  
  111. TYPE
  112.     MenuInfoPtr = ^MenuInfo;
  113.     MenuInfo = RECORD
  114.         menuID:                    INTEGER;
  115.         menuWidth:                INTEGER;
  116.         menuHeight:                INTEGER;
  117.         menuProc:                Handle;
  118.         enableFlags:            LONGINT;
  119.         menuData:                Str255;
  120.     END;
  121.  
  122.     MenuPtr                                = ^MenuInfo;
  123.     MenuHandle                            = ^MenuPtr;
  124. {  MenuRef is obsolete.  Use MenuHandle.  }
  125.     MenuRef                                = MenuHandle;
  126.     MCEntryPtr = ^MCEntry;
  127.     MCEntry = RECORD
  128.         mctID:                    INTEGER;                                { menu ID.  ID = 0 is the menu bar }
  129.         mctItem:                INTEGER;                                { menu Item. Item = 0 is a title }
  130.         mctRGB1:                RGBColor;                                { usage depends on ID and Item }
  131.         mctRGB2:                RGBColor;                                { usage depends on ID and Item }
  132.         mctRGB3:                RGBColor;                                { usage depends on ID and Item }
  133.         mctRGB4:                RGBColor;                                { usage depends on ID and Item }
  134.         mctReserved:            INTEGER;                                { reserved for internal use }
  135.     END;
  136.  
  137.     MCTable                                = ARRAY [0..0] OF MCEntry;
  138.     MCTablePtr                            = ^MCTable;
  139.     MCTableHandle                        = ^MCTablePtr;
  140.     MenuCRsrcPtr = ^MenuCRsrc;
  141.     MenuCRsrc = RECORD
  142.         numEntries:                INTEGER;                                { number of entries }
  143.         mcEntryRecs:            MCTable;                                { ARRAY [1..numEntries] of MCEntry }
  144.     END;
  145.  
  146.     MenuCRsrcHandle                        = ^MenuCRsrcPtr;
  147. {$IFC TARGET_OS_WIN32 }
  148. { QuickTime 3.0 }
  149.     MenuAccessKeyRecPtr = ^MenuAccessKeyRec;
  150.     MenuAccessKeyRec = RECORD
  151.         count:                    INTEGER;
  152.         flags:                    LONGINT;
  153.         keys:                    SInt8;
  154.     END;
  155.  
  156.     MenuAccessKeyPtr                    = ^MenuAccessKeyRec;
  157.     MenuAccessKeyHandle                    = ^MenuAccessKeyPtr;
  158. PROCEDURE SetMenuItemHotKey(menuRef: MenuRef; itemID: INTEGER; hotKey: ByteParameter; flags: LONGINT);
  159. {$ENDC}  {TARGET_OS_WIN32}
  160.  
  161.  
  162. TYPE
  163. {$IFC TYPED_FUNCTION_POINTERS}
  164.     MenuDefProcPtr = PROCEDURE(message: INTEGER; theMenu: MenuHandle; VAR menuRect: Rect; hitPt: Point; VAR whichItem: INTEGER);
  165. {$ELSEC}
  166.     MenuDefProcPtr = ProcPtr;
  167. {$ENDC}
  168.  
  169. {$IFC TYPED_FUNCTION_POINTERS}
  170.     MenuBarDefProcPtr = FUNCTION(selector: INTEGER; message: INTEGER; parameter1: INTEGER; parameter2: LONGINT): LONGINT;
  171. {$ELSEC}
  172.     MenuBarDefProcPtr = ProcPtr;
  173. {$ENDC}
  174.  
  175. {$IFC TYPED_FUNCTION_POINTERS}
  176.     MenuHookProcPtr = PROCEDURE;
  177. {$ELSEC}
  178.     MenuHookProcPtr = ProcPtr;
  179. {$ENDC}
  180.  
  181. {$IFC TYPED_FUNCTION_POINTERS}
  182.     MBarHookProcPtr = FUNCTION(VAR menuRect: Rect): INTEGER;
  183. {$ELSEC}
  184.     MBarHookProcPtr = Register68kProcPtr;
  185. {$ENDC}
  186.  
  187.     MenuDefUPP = UniversalProcPtr;
  188.     MenuBarDefUPP = UniversalProcPtr;
  189.     MenuHookUPP = UniversalProcPtr;
  190.     MBarHookUPP = UniversalProcPtr;
  191.  
  192. CONST
  193.     uppMenuDefProcInfo = $0000FF80;
  194.     uppMenuBarDefProcInfo = $00003AB0;
  195.     uppMenuHookProcInfo = $00000000;
  196.     uppMBarHookProcInfo = $000000CF;
  197.  
  198. FUNCTION NewMenuDefProc(userRoutine: MenuDefProcPtr): MenuDefUPP;
  199.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  200.     INLINE $2E9F;
  201.     {$ENDC}
  202.  
  203. FUNCTION NewMenuBarDefProc(userRoutine: MenuBarDefProcPtr): MenuBarDefUPP;
  204.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  205.     INLINE $2E9F;
  206.     {$ENDC}
  207.  
  208. FUNCTION NewMenuHookProc(userRoutine: MenuHookProcPtr): MenuHookUPP;
  209.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  210.     INLINE $2E9F;
  211.     {$ENDC}
  212.  
  213. FUNCTION NewMBarHookProc(userRoutine: MBarHookProcPtr): MBarHookUPP;
  214.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  215.     INLINE $2E9F;
  216.     {$ENDC}
  217.  
  218. PROCEDURE CallMenuDefProc(message: INTEGER; theMenu: MenuHandle; VAR menuRect: Rect; hitPt: Point; VAR whichItem: INTEGER; userRoutine: MenuDefUPP);
  219.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  220.     INLINE $205F, $4E90;
  221.     {$ENDC}
  222.  
  223. FUNCTION CallMenuBarDefProc(selector: INTEGER; message: INTEGER; parameter1: INTEGER; parameter2: LONGINT; userRoutine: MenuBarDefUPP): LONGINT;
  224.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  225.     INLINE $205F, $4E90;
  226.     {$ENDC}
  227.  
  228. PROCEDURE CallMenuHookProc(userRoutine: MenuHookUPP);
  229.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  230.     INLINE $205F, $4E90;
  231.     {$ENDC}
  232.  
  233. FUNCTION CallMBarHookProc(VAR menuRect: Rect; userRoutine: MBarHookUPP): INTEGER;
  234.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  235.     {To be implemented:  Glue to move parameters into registers.}
  236.     {$ENDC}
  237.  
  238. FUNCTION GetMBarHeight: INTEGER;
  239.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  240.     INLINE $3EB8, $0BAA;
  241.     {$ENDC}
  242. PROCEDURE InitMenus;
  243.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  244.     INLINE $A930;
  245.     {$ENDC}
  246. FUNCTION NewMenu(menuID: INTEGER; menuTitle: Str255): MenuHandle;
  247.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  248.     INLINE $A931;
  249.     {$ENDC}
  250. FUNCTION GetMenu(resourceID: INTEGER): MenuHandle;
  251.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  252.     INLINE $A9BF;
  253.     {$ENDC}
  254. PROCEDURE DisposeMenu(theMenu: MenuHandle);
  255.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  256.     INLINE $A932;
  257.     {$ENDC}
  258. PROCEDURE AppendMenu(menu: MenuHandle; data: Str255);
  259.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  260.     INLINE $A933;
  261.     {$ENDC}
  262. PROCEDURE InsertResMenu(theMenu: MenuHandle; theType: ResType; afterItem: INTEGER);
  263.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  264.     INLINE $A951;
  265.     {$ENDC}
  266. PROCEDURE InsertMenu(theMenu: MenuHandle; beforeID: INTEGER);
  267.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  268.     INLINE $A935;
  269.     {$ENDC}
  270. PROCEDURE DeleteMenu(menuID: INTEGER);
  271.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  272.     INLINE $A936;
  273.     {$ENDC}
  274. PROCEDURE AppendResMenu(theMenu: MenuHandle; theType: ResType);
  275.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  276.     INLINE $A94D;
  277.     {$ENDC}
  278. PROCEDURE InsertMenuItem(theMenu: MenuHandle; itemString: Str255; afterItem: INTEGER);
  279.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  280.     INLINE $A826;
  281.     {$ENDC}
  282. PROCEDURE DeleteMenuItem(theMenu: MenuHandle; item: INTEGER);
  283.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  284.     INLINE $A952;
  285.     {$ENDC}
  286. FUNCTION MenuKey(ch: CharParameter): LONGINT;
  287.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  288.     INLINE $A93E;
  289.     {$ENDC}
  290. PROCEDURE HiliteMenu(menuID: INTEGER);
  291.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  292.     INLINE $A938;
  293.     {$ENDC}
  294. PROCEDURE SetMenuItemText(theMenu: MenuHandle; item: INTEGER; itemString: Str255);
  295.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  296.     INLINE $A947;
  297.     {$ENDC}
  298. PROCEDURE GetMenuItemText(theMenu: MenuHandle; item: INTEGER; VAR itemString: Str255);
  299.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  300.     INLINE $A946;
  301.     {$ENDC}
  302. PROCEDURE SetItemMark(theMenu: MenuHandle; item: INTEGER; markChar: CharParameter);
  303.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  304.     INLINE $A944;
  305.     {$ENDC}
  306. PROCEDURE GetItemMark(theMenu: MenuHandle; item: INTEGER; VAR markChar: CharParameter);
  307.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  308.     INLINE $A943;
  309.     {$ENDC}
  310. PROCEDURE SetItemCmd(theMenu: MenuHandle; item: INTEGER; cmdChar: CharParameter);
  311.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  312.     INLINE $A84F;
  313.     {$ENDC}
  314. PROCEDURE GetItemCmd(theMenu: MenuHandle; item: INTEGER; VAR cmdChar: CharParameter);
  315.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  316.     INLINE $A84E;
  317.     {$ENDC}
  318. PROCEDURE SetItemIcon(theMenu: MenuHandle; item: INTEGER; iconIndex: INTEGER);
  319.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  320.     INLINE $A940;
  321.     {$ENDC}
  322. PROCEDURE GetItemIcon(theMenu: MenuHandle; item: INTEGER; VAR iconIndex: Byte);
  323.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  324.     INLINE $A93F;
  325.     {$ENDC}
  326. PROCEDURE SetItemStyle(theMenu: MenuHandle; item: INTEGER; chStyle: StyleParameter);
  327.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  328.     INLINE $A942;
  329.     {$ENDC}
  330. PROCEDURE GetItemStyle(theMenu: MenuHandle; item: INTEGER; VAR chStyle: Style);
  331. FUNCTION GetMenuHandle(menuID: INTEGER): MenuHandle;
  332.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  333.     INLINE $A949;
  334.     {$ENDC}
  335. PROCEDURE CalcMenuSize(theMenu: MenuHandle);
  336.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  337.     INLINE $A948;
  338.     {$ENDC}
  339. PROCEDURE DisableItem(theMenu: MenuHandle; item: INTEGER);
  340.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  341.     INLINE $A93A;
  342.     {$ENDC}
  343. PROCEDURE EnableItem(theMenu: MenuHandle; item: INTEGER);
  344.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  345.     INLINE $A939;
  346.     {$ENDC}
  347. PROCEDURE FlashMenuBar(menuID: INTEGER);
  348.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  349.     INLINE $A94C;
  350.     {$ENDC}
  351. FUNCTION PopUpMenuSelect(menu: MenuHandle; top: INTEGER; left: INTEGER; popUpItem: INTEGER): LONGINT;
  352.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  353.     INLINE $A80B;
  354.     {$ENDC}
  355. FUNCTION MenuChoice: LONGINT;
  356.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  357.     INLINE $AA66;
  358.     {$ENDC}
  359. PROCEDURE DeleteMCEntries(menuID: INTEGER; menuItem: INTEGER);
  360.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  361.     INLINE $AA60;
  362.     {$ENDC}
  363. FUNCTION GetMCInfo: MCTableHandle;
  364.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  365.     INLINE $AA61;
  366.     {$ENDC}
  367. PROCEDURE SetMCInfo(menuCTbl: MCTableHandle);
  368.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  369.     INLINE $AA62;
  370.     {$ENDC}
  371. PROCEDURE DisposeMCInfo(menuCTbl: MCTableHandle);
  372.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  373.     INLINE $AA63;
  374.     {$ENDC}
  375. FUNCTION GetMCEntry(menuID: INTEGER; menuItem: INTEGER): MCEntryPtr;
  376.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  377.     INLINE $AA64;
  378.     {$ENDC}
  379. PROCEDURE SetMCEntries(numEntries: INTEGER; menuCEntries: MCTablePtr);
  380.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  381.     INLINE $AA65;
  382.     {$ENDC}
  383. PROCEDURE DrawMenuBar;
  384.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  385.     INLINE $A937;
  386.     {$ENDC}
  387. PROCEDURE InvalMenuBar;
  388.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  389.     INLINE $A81D;
  390.     {$ENDC}
  391. PROCEDURE InitProcMenu(resID: INTEGER);
  392.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  393.     INLINE $A808;
  394.     {$ENDC}
  395. FUNCTION GetMenuBar: Handle;
  396.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  397.     INLINE $A93B;
  398.     {$ENDC}
  399. PROCEDURE SetMenuBar(menuList: Handle);
  400.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  401.     INLINE $A93C;
  402.     {$ENDC}
  403. FUNCTION SystemEdit(editCmd: INTEGER): BOOLEAN;
  404.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  405.     INLINE $A9C2;
  406.     {$ENDC}
  407. PROCEDURE SystemMenu(menuResult: LONGINT);
  408.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  409.     INLINE $A9B5;
  410.     {$ENDC}
  411. FUNCTION GetNewMBar(menuBarID: INTEGER): Handle;
  412.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  413.     INLINE $A9C0;
  414.     {$ENDC}
  415. PROCEDURE ClearMenuBar;
  416.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  417.     INLINE $A934;
  418.     {$ENDC}
  419. PROCEDURE CheckItem(theMenu: MenuHandle; item: INTEGER; checked: BOOLEAN);
  420.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  421.     INLINE $A945;
  422.     {$ENDC}
  423. FUNCTION CountMItems(theMenu: MenuHandle): INTEGER;
  424.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  425.     INLINE $A950;
  426.     {$ENDC}
  427. PROCEDURE SetMenuFlash(count: INTEGER);
  428.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  429.     INLINE $A94A;
  430.     {$ENDC}
  431. FUNCTION MenuSelect(startPt: Point): LONGINT;
  432.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  433.     INLINE $A93D;
  434.     {$ENDC}
  435. PROCEDURE InsertFontResMenu(theMenu: MenuHandle; afterItem: INTEGER; scriptFilter: INTEGER);
  436.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  437.     INLINE $303C, $0400, $A825;
  438.     {$ENDC}
  439. PROCEDURE InsertIntlResMenu(theMenu: MenuHandle; theType: ResType; afterItem: INTEGER; scriptFilter: INTEGER);
  440.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  441.     INLINE $303C, $0601, $A825;
  442.     {$ENDC}
  443.  
  444. {——————————————————————————————————————————————————————————————————————————————————————}
  445. {    • Appearance 1.0 and later Menu Manager routines                                    }
  446. {——————————————————————————————————————————————————————————————————————————————————————}
  447. FUNCTION MenuEvent({CONST}VAR inEvent: EventRecord): UInt32;
  448.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  449.     INLINE $303C, $020C, $A825;
  450.     {$ENDC}
  451. FUNCTION SetMenuItemCommandID(inMenu: MenuHandle; inItem: SInt16; inCommandID: UInt32): OSErr;
  452.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  453.     INLINE $303C, $0502, $A825;
  454.     {$ENDC}
  455. FUNCTION GetMenuItemCommandID(inMenu: MenuHandle; inItem: SInt16; VAR outCommandID: UInt32): OSErr;
  456.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  457.     INLINE $303C, $0503, $A825;
  458.     {$ENDC}
  459. FUNCTION SetMenuItemModifiers(inMenu: MenuHandle; inItem: SInt16; inModifiers: ByteParameter): OSErr;
  460.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  461.     INLINE $303C, $0404, $A825;
  462.     {$ENDC}
  463. FUNCTION GetMenuItemModifiers(inMenu: MenuHandle; inItem: SInt16; VAR outModifiers: UInt8): OSErr;
  464.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  465.     INLINE $303C, $0505, $A825;
  466.     {$ENDC}
  467. FUNCTION SetMenuItemIconHandle(inMenu: MenuHandle; inItem: SInt16; inIconType: ByteParameter; inIconHandle: Handle): OSErr;
  468.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  469.     INLINE $303C, $0606, $A825;
  470.     {$ENDC}
  471. FUNCTION GetMenuItemIconHandle(inMenu: MenuHandle; inItem: SInt16; VAR outIconType: UInt8; VAR outIconHandle: Handle): OSErr;
  472.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  473.     INLINE $303C, $0707, $A825;
  474.     {$ENDC}
  475. FUNCTION SetMenuItemTextEncoding(inMenu: MenuHandle; inItem: SInt16; inScriptID: TextEncoding): OSErr;
  476.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  477.     INLINE $303C, $0408, $A825;
  478.     {$ENDC}
  479. FUNCTION GetMenuItemTextEncoding(inMenu: MenuHandle; inItem: SInt16; VAR outScriptID: TextEncoding): OSErr;
  480.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  481.     INLINE $303C, $0509, $A825;
  482.     {$ENDC}
  483. FUNCTION SetMenuItemHierarchicalID(inMenu: MenuHandle; inItem: SInt16; inHierID: SInt16): OSErr;
  484.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  485.     INLINE $303C, $040D, $A825;
  486.     {$ENDC}
  487. FUNCTION GetMenuItemHierarchicalID(inMenu: MenuHandle; inItem: SInt16; VAR outHierID: SInt16): OSErr;
  488.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  489.     INLINE $303C, $050E, $A825;
  490.     {$ENDC}
  491. FUNCTION SetMenuItemFontID(inMenu: MenuHandle; inItem: SInt16; inFontID: SInt16): OSErr;
  492.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  493.     INLINE $303C, $040F, $A825;
  494.     {$ENDC}
  495. FUNCTION GetMenuItemFontID(inMenu: MenuHandle; inItem: SInt16; VAR outFontID: SInt16): OSErr;
  496.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  497.     INLINE $303C, $0510, $A825;
  498.     {$ENDC}
  499. FUNCTION SetMenuItemRefCon(inMenu: MenuHandle; inItem: SInt16; inRefCon: UInt32): OSErr;
  500.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  501.     INLINE $303C, $050A, $A825;
  502.     {$ENDC}
  503. FUNCTION GetMenuItemRefCon(inMenu: MenuHandle; inItem: SInt16; VAR outRefCon: UInt32): OSErr;
  504.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  505.     INLINE $303C, $050B, $A825;
  506.     {$ENDC}
  507. FUNCTION SetMenuItemRefCon2(inMenu: MenuHandle; inItem: SInt16; inRefCon2: UInt32): OSErr;
  508.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  509.     INLINE $303C, $0511, $A825;
  510.     {$ENDC}
  511. FUNCTION GetMenuItemRefCon2(inMenu: MenuHandle; inItem: SInt16; VAR outRefCon2: UInt32): OSErr;
  512.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  513.     INLINE $303C, $0512, $A825;
  514.     {$ENDC}
  515. FUNCTION SetMenuItemKeyGlyph(inMenu: MenuHandle; inItem: SInt16; inGlyph: SInt16): OSErr;
  516.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  517.     INLINE $303C, $0513, $A825;
  518.     {$ENDC}
  519. FUNCTION GetMenuItemKeyGlyph(inMenu: MenuHandle; inItem: SInt16; VAR outGlyph: SInt16): OSErr;
  520.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  521.     INLINE $303C, $0514, $A825;
  522.     {$ENDC}
  523. {——————————————————————————————————————————————————————————————————————————————————————}
  524. {    • Contextual Menu routines and constants                                            }
  525. {    available with Conxtextual Menu extension 1.0 and later                                }
  526. {——————————————————————————————————————————————————————————————————————————————————————}
  527. { Gestalt Selector for classic 68K apps only. }
  528. { CFM apps should weak link and check the symbols. }
  529.  
  530. CONST
  531.     gestaltContextualMenuAttr    = 'cmnu';
  532.     gestaltContextualMenuUnusedBit = 0;
  533.     gestaltContextualMenuTrapAvailable = 1;
  534.  
  535. { Values indicating what kind of help the application supports }
  536.     kCMHelpItemNoHelp            = 0;
  537.     kCMHelpItemAppleGuide        = 1;
  538.     kCMHelpItemOtherHelp        = 2;
  539.  
  540. { Values indicating what was chosen from the menu }
  541.     kCMNothingSelected            = 0;
  542.     kCMMenuItemSelected            = 1;
  543.     kCMShowHelpSelected            = 3;
  544.  
  545. FUNCTION InitContextualMenus: OSStatus;
  546.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  547.     INLINE $7001, $AA72;
  548.     {$ENDC}
  549. FUNCTION IsShowContextualMenuClick({CONST}VAR inEvent: EventRecord): BOOLEAN;
  550.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  551.     INLINE $7002, $AA72;
  552.     {$ENDC}
  553. FUNCTION ContextualMenuSelect(inMenu: MenuHandle; inGlobalLocation: Point; inReserved: BOOLEAN; inHelpType: UInt32; inHelpItemString: Str255; {CONST}VAR inSelection: AEDesc; VAR outUserSelectionType: UInt32; VAR outMenuID: SInt16; VAR outMenuItem: UInt16): OSStatus;
  554.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  555.     INLINE $7003, $AA72;
  556.     {$ENDC}
  557. FUNCTION ProcessIsContextualMenuClient(VAR inPSN: ProcessSerialNumber): BOOLEAN;
  558.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  559.     INLINE $7004, $AA72;
  560.     {$ENDC}
  561.  
  562.  
  563.  
  564. {$IFC OLDROUTINENAMES }
  565. PROCEDURE AddResMenu(theMenu: MenuHandle; theType: ResType);
  566.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  567.     INLINE $A94D;
  568.     {$ENDC}
  569. PROCEDURE InsMenuItem(theMenu: MenuHandle; itemString: Str255; afterItem: INTEGER);
  570.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  571.     INLINE $A826;
  572.     {$ENDC}
  573. PROCEDURE DelMenuItem(theMenu: MenuHandle; item: INTEGER);
  574.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  575.     INLINE $A952;
  576.     {$ENDC}
  577. PROCEDURE SetItem(theMenu: MenuHandle; item: INTEGER; itemString: Str255);
  578.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  579.     INLINE $A947;
  580.     {$ENDC}
  581. PROCEDURE GetItem(theMenu: MenuHandle; item: INTEGER; VAR itemString: Str255);
  582.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  583.     INLINE $A946;
  584.     {$ENDC}
  585. FUNCTION GetMHandle(menuID: INTEGER): MenuHandle;
  586.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  587.     INLINE $A949;
  588.     {$ENDC}
  589. PROCEDURE DelMCEntries(menuID: INTEGER; menuItem: INTEGER);
  590.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  591.     INLINE $AA60;
  592.     {$ENDC}
  593. PROCEDURE DispMCInfo(menuCTbl: MCTableHandle);
  594.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  595.     INLINE $AA63;
  596.     {$ENDC}
  597. {$ENDC}  {OLDROUTINENAMES}
  598.  
  599.  
  600.  
  601. {$IFC TARGET_OS_WIN32 }
  602. {$ENDC}  {TARGET_OS_WIN32}
  603.  
  604. {$ALIGN RESET}
  605. {$POP}
  606.  
  607. {$SETC UsingIncludes := MenusIncludes}
  608.  
  609. {$ENDC} {__MENUS__}
  610.  
  611. {$IFC NOT UsingIncludes}
  612.  END.
  613. {$ENDC}
  614.